package gmed;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

public class especialidade_Impl extends UnicastRemoteObject implements especialidade {
	
	private String nome;
	private int idespeci;
	private static Connection conn = null;
	
	public especialidade_Impl(String nome) throws RemoteException{
	this.nome=nome;
	if (conn == null)
		conn = DBConnection2.get_conn();
	java.sql.Statement st;
	try {
		st = conn.createStatement();
		java.sql.ResultSet rs = st.executeQuery("select nome, idespeci from especialidade where nome='"
				+nome+"'");
if (rs.first()) { 
	this.nome = rs.getNString(1);
	this.idespeci=rs.getInt(2);
	
} else {
	if (st.execute("insert into especialidade (nome) values ("
			+ nome + ")", st.RETURN_GENERATED_KEYS)) {
		rs = st.getGeneratedKeys();
		rs.first();
		this.idespeci= rs.getInt(1);
	}
}
} catch (SQLException e) {

e.printStackTrace();
}
}
	public String get_nome() throws RemoteException {	
		return nome;
	}
	public boolean set_nome(String nome) throws RemoteException {
		this.nome = nome;
	//	this.update_field("nome", nome);
		return true;
	}
	public void elimina_especialidade(String nome){
		antes_eliminar();
		Statement st;
		try{
			if(conn==null)
				conn= DBConnection2.get_conn();
			st=conn.createStatement();
			String query="delete from especialidade where nome='"+this.nome+"'";
			st.execute(query);
		}catch (SQLException e){
	}
	}
		private void antes_eliminar(){
			Statement  st;
			try{
				if(conn==null)
					conn=DBConnection2.get_conn();
				st=conn.createStatement();
				String query="delete from medico where medico.idesp=(select idespeci from especialidade where nome='"+this.nome+"')";
				st.execute(query);
			}catch(SQLException e){
				
			
		}
	}
}
